//package cn.edu.ctbu.datajpa01.service;
//
//import cn.edu.ctbu.datajpa01.domain.Student;
//
//import cn.edu.ctbu.datajpa01.exception.REnum;
//import cn.edu.ctbu.datajpa01.exception.RException;
//import org.springframework.data.domain.Example;
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.Pageable;
//import org.springframework.stereotype.Service;
//
//
//import java.util.List;
//
//@Service
//
//public interface StudentService {
//
//
//
//   List<Student> findAll();
//
//    /**
//     * 只分页的查询
//     * @param pageable
//     * @return
//     */
//   Page<Student> findAll(Pageable pageable);
//
//
//    /**
//     * 带过滤
//     * @param studentExample
//     * @param pageable
//     * @return
//     */
//    public Page<Student> findAll(Example<Student> studentExample, Pageable pageable);
//
//    /**
//     * 按id进行查询
//     * @param id 主键，整数
//     * @return
//     */
//     Student findById(Integer id);
//
//    /**
//     * 按名字查询，like
//     * @param name
//     * @return
//     */
//
//    List<Student> findByName(String name);
//
//    /**
//     * 按名字和密码查询
//     * @param name
//     * @param password
//     * @return
//     */
//   List<Student> findByNameAndPassword(String name,String password);
//
//    Student insert(Student student);
//
//
//
//   Student update(Student student);
//
//    void delete(Student student);
//    void delete(Integer id);
//
//   Student getById(Integer id);
//
//

//}
package cn.edu.ctbu.datajpa01.service;

import cn.edu.ctbu.datajpa01.domain.Student;

import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


import java.util.List;
public interface StudentService {


//    @Autowired
//   private StudentRepository studentRepository;

//       public Student findByNameAndPassword(String name ,String password) throws Exception{
//       List<Student> byNameAndPassword=studentRepository.findByNameAndPassword(name,password);
//       if(byNameAndPassword.size()>0){
//           return byNameAndPassword.get(0);
//       }else{
//           throw new RException(REnum.LOGIN_ERR);
//       }
//   }

    public List<Student> findAll();


    /**
     * 只分页的查询
     *
     * @param pageable
     * @return
     */

    public Page<Student> findAll(Pageable pageable);

    /**
     * 带过滤
     *
     * @param studentExample
     * @param pageable
     * @return
     */
    public Page<Student> findAll(Example<Student> studentExample, Pageable pageable);


    /**
     * 按id进行查询
     *
     * @param id 主键，整数
     * @return
     */
    public Student findById(Integer id);

    /**
     * 按名字查询，like
     *
     * @param name
     * @return
     */

    public List<Student> findByName(String name);

//    /**
//     * 按名字和密码查询
//     * @param name
//     * @param password
//     * @return
//     */
//    public List<Student> findByNameAndPassword(String name,String password);

    public Student insert(Student student);

    public Student update(Student student);

    public void delete(Student student);

    public void delete(Integer id);

    public Student getById(Integer id);
}

